float alpha = *fsrc++;
if (alpha >= 1.0)
{
- int val = _babl_trc_from_linearf (trc[2], blue) * 0xff + 0.5f;
+ int val = trc[2]->trc.fun_from_linear (trc[2], blue) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[1], green) * 0xff + 0.5f;
+ val = trc[1]->trc.fun_from_linear (trc[1], green) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[0], red) * 0xff + 0.5f;
+ val = trc[0]->trc.fun_from_linear (trc[0], red) * 0xff + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = 0xff;
}
else
{
float balpha = alpha * 0xff;
- int val = _babl_trc_from_linearf (trc[2], blue) * balpha + 0.5f;
+ int val = trc[2]->trc.fun_from_linear (trc[2], blue) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[1], green) * balpha + 0.5f;
+ val = trc[1]->trc.fun_from_linear (trc[1], green) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
- val = _babl_trc_from_linearf (trc[0], red) * balpha + 0.5f;
+ val = trc[0]->trc.fun_from_linear (trc[0], red) * balpha + 0.5f;
*cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = balpha + 0.5f;
}
float alpha = *fsrc++;
if (alpha >= 1.0)
{
- int val = _babl_trc_from_linearf (trc[0], gray) * 0xff + 0.5f;
+ int val = trc[0]->trc.fun_from_linear (trc[0], gray) * 0xff + 0.5f;
val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = val;
*cdst++ = val;
else
{
float balpha = alpha * 0xff;
- int val = _babl_trc_from_linearf (trc[0], gray) * balpha + 0.5f;
+ int val = trc[0]->trc.fun_from_linear (trc[0], gray) * balpha + 0.5f;
val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
*cdst++ = val;
*cdst++ = val;
while (n--)
{
float alpha = fsrc[3];
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++) * alpha;
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
*fdst++ = *fsrc++;
}
return samples;
}
else if (alpha >= 1.0)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
*fdst++ = *fsrc++;
}
else
{
float alpha_recip = 1.0 / alpha;
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++ * alpha_recip) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++ * alpha_recip) * alpha;
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++ * alpha_recip) * alpha;
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++ * alpha_recip) * alpha;
*fdst++ = *fsrc++;
}
}
while (n--)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
*fdst++ = *fsrc++;
}
return samples;
while (n--)
{
- *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
}
return samples;
}
while (n--)
{
- *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
*fdst++ = *fsrc++;
}
return samples;
while (n--)
{
- *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
- *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+ *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+ *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+ *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
}
return samples;
}